import { registerMicroApps, start } from 'qiankun'

const renderLoader = (loader)=>{
    if (loader) {
        return '加载中。。。'
    }

}

import { initGlobalState } from 'qiankun';

const state = {count:100}
// 初始化 state
const actions = initGlobalState(state);

actions.onGlobalStateChange((state, prev) => {
    // state: 变更后的状态; prev 变更前的状态
    console.log(state, prev);
});
setInterval(()=>{
    actions.setGlobalState({count:state.count++});
},1000)
actions.offGlobalStateChange();

registerMicroApps([
    {
        name: 'vue-app', // 必须与微应用注册名字相同
        entry: 'http://localhost:8082', // 入口路径，开发时为微应用所启本地服务，上线时为微应用线上路径
        container: '#vue-app-container', // 微应用挂载的节点
        activeRule: '/micro-vue', // 当访问路由为 /micro-vue 时加载微应用
        loader: (loader)=>renderLoader(loader), // 微应用切换时调用的方法，显示一个 loading 状态
        props: {
            msg: "我是来自主应用的值-vue"  // 主应用向微应用传递参数
        }
    },
    {
        name: 'react-app',
        entry: 'http://localhost:8083',
        container: '#react-app-container',
        activeRule: '/micro-react',
        loader: (loader)=>renderLoader(loader), // 微应用切换时调用的方法，显示一个 loading 状态
        props: {
            msg: "我是来自主应用的值-react"
        }
    },{
        name: 'vue-app2',
        entry: 'http://127.0.0.1:5174',
        container: '#vue-app-container', // 微应用挂载的节点
        activeRule: '/micro-vue2', // 当访问路由为 /micro-vue 时加载微应用
        loader: (loader)=>renderLoader(loader), // 微应用切换时调用的方法，显示一个 loading 状态
        props: {
            count: "100"  // 主应用向微应用传递参数
        }
    }
])
start()
